Application virtualization enables complex software to be delivered as self-contained executable files which can run instantly from any data source with zero installation, i.e., copying individual files and settings to the computer system. Application virtualization can provide many benefits, depending on the implementation. For example, using application virtualization, large applications such as Microsoft Office may be streamed from a shared network drive without any specialized client or server software. Further, using application virtualization, virtualized applications may be run in managed or unmanaged Microsoft Windows environments without requiring elevated security rights. This allows stronger security to be implemented by allowing applications that ordinarily require administrator rights to run on locked-down user accounts. A degree of isolation is imposed on virtualized applications, thereby protecting the local client computer against changes to the file system and registry for both custom developed and commercial applications, enabling true separation of application and operating system. In some cases, application virtualization may be used for disaster recovery to quickly redeploy and restore access to virtualized applications across a wide variety of client computers.
Some implementations of application virtualization, during the process of virtualization, create a single secure executable file (a “container” file) which encapsulates all registry changes and file system changes associated with a normal installation. Known approaches for application virtualization utilize an installer script or executable that contains executable code, data files, configurations, and other data for the application. Rather than execute the installer to perform an installation of the application on a computer system, some implementations of application virtualization utilize the installer to obtain executable code, data files, configurations, and other data for encapsulation in the container file.
However, in some information technology (IT) environments, an installer for an application may be unavailable. For example, applications in customized deployments, such as hardened applications, typically do not have a conventional installer that may be used to virtualize the application. Such applications (e.g., hardened applications) may not enjoy the many benefits provided by application virtualization, for example, failover or recovery mechanisms when the application becomes corrupted. As such, there is a demand for techniques for application virtualizations for applications for which installers are not available.